package servlet;

import pojo.User;
import service.UserService;
import service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

//注解
@WebServlet(urlPatterns = "/user")
public class UserServelt extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String action = req.getParameter("action")// action
        UserService userService = new UserServiceImpl();
        req.setCharacterEncoding("utf-8");
        if ("list".equals(action)) {
            String name = req.getParameter("name");
            String pass = req.getParameter("pass");

            User condition = new User(name,pass);
            List<User> users = userService.findAll(condition);
            //把数据放到请求域
            req.setAttribute("users", users);
            req.setAttribute("condition",condition);

            req.getRequestDispatcher("/list.jsp").forward(req, resp);

        }


        } else if ("delet".equals(action)) {

            // 拿到网页传递过来的用户名和密码
            String sid = req.getParameter("id");

            Integer id = Integer.parseInt(sid);

            // 根据id查询用户信息
            int result = userService.deleteUserById(id);
            if (result > 0) {
                // 重定向到查询所有用户的页面
                resp.sendRedirect("user?action=list");

        } else if ("add".equals(action)) {
                String name = req.getParameter("name");
                String password = req.getParameter("password");

                int result = userService.addUser(new User(name, password));
                if (result > 0) {
                    resp.sendRedirect("user?action=list");
                } else {

                }

            }
            else if ("update".equals(action)) {

                String sid = req.getParameter("id");
                int id = Integer.parseInt(sid);
                // 拿到网页传递过来的用户名和密码
                String name = req.getParameter("name");
                String pass = req.getParameter("pass");



                int result = userService.updateUser(new User(id,name,pass));

                // 重定向
                if (result>0){
                    resp.sendRedirect("user?action=list");
                }else {

                }
            }
            else if ("toupdate".equals(action)) {
                String sid = req.getParameter("id");

                int  id = Integer.parseInt(sid);

                // 根据id查询用户信息
                User user = userService.findById(id);

                // 将查询到的用户信息存储到作用域中
                req.setAttribute("user", user);
                req.getRequestDispatcher("/update.jsp").forward(req, resp);


            }else if ("delet".equals(action)) {

                String sid = req.getParameter("id");
                int id = Integer.parseInt(sid);
                int result = userService.deleteUserById(id);
                if (result>0){
                    resp.sendRedirect("user?action=list");
                }else {

                }

        List<User> all = userService.findAll();
        // 将数据保存到request域中
        req.setAttribute("users",all);
        // 转发到index.jsp
        req.getRequestDispatcher("/list.jsp").forward(req,resp);
    }


}
